package org.atlantis.grosbeak.logger;

/**
 * 日志总接口。
 * 
 * @author <a href="mailto:seenoevil.cn@gmail.com">SeeNoEvil</a>
 * 
 */
public interface Logger {

	boolean isFatalEnabled();

	void fatal(Object message);

	void fatalFmt(String format, Object... args);

	void fatal(Object message, Throwable cause);

	boolean isErrorEnabled();

	void error(Object message);

	void errorFmt(String format, Object... args);

	void error(Object message, Throwable cause);

	boolean isWarnEnabled();

	void warn(Object message);

	void warnFmt(String format, Object... args);

	void warn(Object message, Throwable cause);

	boolean isInfoEnabled();

	void info(Object message);

	void infoFmt(String format, Object... args);

	void info(Object message, Throwable cause);

	boolean isDebugEnabled();

	void debug(Object message);

	void debugFmt(String format, Object... args);

	void debug(Object message, Throwable cause);

	boolean isTraceEnabled();

	void trace(Object message);

	void traceFmt(String format, Object... args);

	void trace(Object message, Throwable cause);
}
